﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GamePlusClassLibrary;

namespace GamePlusAdmin
{
    public partial class JogoCadastro : System.Web.UI.Page
    {
        private int? _Idf_Jogo
        {
            get {
                if (ViewState["VSIdfJogo"] != null)
                    return int.Parse(ViewState["VSIdfJogo"].ToString());
                else
                    return null;
            }
            set {
                ViewState.Add("VSIdfJogo", value);
            }
        }
        private List<int> _List_Tags_ID
        {
            get
            {
                if (ViewState["VSListTagsID"] != null)
                    return (List<int>)ViewState["VSListTagsID"];
                else
                    return new List<int>();
            }
            set {
                ViewState.Add("VSListTagsID", value);
            }
        }
                
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["c"] != null)
            { 
                this._Idf_Jogo = int.Parse(Request.QueryString["c"].ToString();
            }
        }

        private void Carregar()
        {
            if (this._Idf_Jogo.HasValue)
            {
                Jogo objJogo = Jogo.Carregar(this._Idf_Jogo.Value);
                txtNome.Text = objJogo.Nme_Jogo;
                txtChamada.Text = objJogo.Des_Chamada;
                txtInstrucoes.Text = objJogo.Des_Instrucoes;
                txtURLRef.Text = objJogo.Des_Referencia_URL;
                txtHTMLFlashLink.Text = objJogo.Des_Codigo_HTML;
            }
        }

        private void Salvar()
        {
            Jogo objJogo = null;
            if (this._Idf_Jogo.HasValue)
                objJogo = Jogo.Carregar(this._Idf_Jogo.Value);
            else
            {
                objJogo = new Jogo();
                objJogo.Dta_Cadastro = DateTime.Now;
            }

            objJogo.Idf_Jogo_Tipo = int.Parse(rdTipoJogo.SelectedValue);
            objJogo.Nme_Jogo = txtNome.Text;
            objJogo.Des_Chamada = txtChamada.Text;
            objJogo.Des_Instrucoes = txtInstrucoes.Text;
            objJogo.Des_Referencia_URL = txtURLRef.Text;
            objJogo.Des_Codigo_HTML = txtHTMLFlashLink.Text;
            objJogo.Dta_Alteracao = DateTime.Now;
            objJogo.Idf_Categoria = 0;
            objJogo.Salvar();

            ((List<int>)this._List_Tags_ID).ForEach(delegate(int iID) {
                JogoTags objJogoTag = new JogoTags();
                objJogoTag.Idf_Jogo = objJogo.Idf_Jogo.Value;
                objJogoTag.Idf_Tag = iID;
                objJogoTag.Salvar();
            });
            

            //Arquivo Flash
            //Metadata
            //Imagens
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            if(Page.IsValid)
                Salvar();
        }

        private void CarregarGridTag()
        {
            if (this._List_Tags_ID.Count > 0)
            {
                List<Tags> ls = new List<Tags>();
                
                this._List_Tags_ID.ForEach(delegate(int idTag) {
                    ls.Add(Tags.Carregar(idTag));
                });

                gvTags.DataSource = ls;
                gvTags.DataBind();
            }
        }

        protected void btnAdicionarTag_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(IdTag.Value))
            {
                List<int> ls = this._List_Tags_ID;
                ls.Add(int.Parse(IdTag.Value));
                this._List_Tags_ID = ls;
                CarregarGridTag();
            }
        }
    }
}